package net.maku.system.service;

import net.maku.member.vo.MemberUserTokenVO;
import net.maku.system.params.CodeLoginParams;
import net.maku.system.params.QueryUserParams;
import net.maku.system.params.UnionLoginParams;
import net.maku.system.params.UpdateUserParams;
import net.maku.system.vo.LoginUserVo;

/**
 * @author Administrator
 */
public interface SysUserAuthService {

    /**
     * 通过此接口登陆的，如果用户不存在的直接提示用户不存在
     * @param code
     * @return
     */
    MemberUserTokenVO loginByCode(CodeLoginParams code);

    /**
     * 通过此接口登陆的，如果用户不存在则会注册用户
     * @param unionLoginParams
     * @return
     */
    MemberUserTokenVO loginByUnionId(UnionLoginParams unionLoginParams);

    /**
     * 此接口是小程序端调用，通微信的code查询用户的基本信息，如果用户不存在注册并返回用户信息
     * @param code
     * @return
     */
    LoginUserVo getUserInfoByCode(QueryUserParams code);

    /**
     * 此接口是h5端调用，通过unionId查询用户的基本信息，如果用户不存在注册并返回用户信息
     * @param unionLoginParams
     * @return
     */
    LoginUserVo getUserInfoByUnionId(UnionLoginParams unionLoginParams);

    /**
     * 更新用户信息
     * @param updateUserParams
     */
    void updateUserInfo(UpdateUserParams updateUserParams);

    /**
     * 通过手机号获取用户信息
     * @param mobile
     * @return
     */
    LoginUserVo getUserInfoByMobile(String mobile);
}
